package com.grupobbva.seguridad.web.servlet.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.grupobbva.seguridad.domain.Aplicacion;
import com.grupobbva.seguridad.domain.IngresoUsuario;
import com.grupobbva.seguridad.domain.Perfil;
import com.grupobbva.seguridad.domain.Perfil;
import com.grupobbva.seguridad.domain.PerfilPK;
import com.grupobbva.seguridad.domain.Usuario;
import com.grupobbva.seguridad.service.SeguridadService;
import com.grupobbva.seguridad.util.Constante;
import com.grupobbva.seguridad.util.ListaDisplayTag;

@Controller
public class ConsultaIngresoController extends BaseController {
	
	@Autowired
	private SeguridadService seguridadService;

	@RequestMapping("/ingcns.do")
    public String mostrar(HttpServletRequest request) throws Exception {
		//perfil.setPerfil(getPerfil(request));
		request.setAttribute("aplicaciones", seguridadService.obtenerAplicaciones(new Aplicacion(), getAccesoAplicacionIds(request)));
		//request.setAttribute("perfiles",     seguridadService.obtenerPerfiles(new Perfil()));
    	return getRelativeURL("ingcns");
    }

	@RequestMapping("/ingcnsper.do")
    public String mostrarPerfiles(HttpServletRequest request) throws Exception {
		request.setAttribute("perfiles", seguridadService.obtenerPerfiles(new Perfil(new PerfilPK(getParameterLong(request, "aplicacionId"), null))));
    	return getRelativeURL("ingcnsper");
    }	
	
	@RequestMapping("/ingcnslst.do")
    public String buscar(HttpServletRequest request) throws Exception {
		IngresoUsuario ingreso = new IngresoUsuario();
		ingreso.setUsuarioId(getParameterString(request, "filtroUsuarioId"));
		ingreso.setPerfil(new Perfil(new PerfilPK(getParameterLong(request, "filtroAplicacionId"), getParameterLong(request, "filtroPerfilId"))));
		//request.setAttribute("ingresos", seguridadService.obtenerIngresosListado(ingreso, getUsuario(request), null, null));
		
		int nroRegistros    = seguridadService.obtenerIngresosCantidad(ingreso, getUsuario(request));
		int nroPaginaActual = getNroPaginaActual(request);
		List<IngresoUsuario> lista = seguridadService.obtenerIngresosListado(ingreso, getUsuario(request), Constante.CANTIDAD_REG_X_PAG, nroPaginaActual);
		
		request.setAttribute("ingresos", getListaDisplayTag(request, nroRegistros, nroPaginaActual, lista));
		//modificacionDatosGeneralesForm.setLista(displayTag);
		
    	return getRelativeURL("ingcnslst");
    }
}
